#!/usr/bin/env bash
#-----------------------------------------------
# Author : hpy
# Emal   : yuan_hp@qq.com
#
# auto run some file! for example bash,fish,tcl,
# python, cpp, gnuplot and so on 
#-----------------------------------------------
dst=$(date +%Y%m%d%H%M%S.mgo) #临时文件
function main(){
    DefautRun $*
    test ! -f $1 && echo "不存在 $1 文件" | cat && exit
    ReadFileType $1 | cat  #cat显示是为了在win上不乱码
}

#带有参数，则识别第一个参数，并根据文件不同类型选择后续操作
function ReadFileType(){ 
    case $1 in 
        *.sh | *.fish | *.pl | *.tcl | *.tk | *.py | *.js | *.lua)  chmod +x $1 && ./$1 ;; 
        *.c) gcc -o $dst $1 && chmod +x $dst && ./$dst;;
        *.cpp) g++ -std=c++11 -o $dst $1 && chmod +x $dst && ./$dst;;
        *.go ) go build -o $dst $1 && chmod +x $dst &&  ./$dst ;;
        *.plt) gnuplot $1 ;;   #gnuplot
        * ) echo "Fuck! I don't konw what it is!" ;;
    esac

    test -f $dst && rm $dst &>/dev/null
}

#当不带参数输入时 找run或者run.sh文件运行
function DefautRun(){
    if [ -z $* ] ;then
        if [ -f run ] ;then
            chmod +x run
            ./run
        elif [ -f run.sh ] ; then 
            chmod +x run.sh
            ./run.sh
        else 
            echo "Fuck! Fuck! No parameters, no run file or run.sh file, what do you want?"
        fi
        exit
    fi
}

main $*
